<?
	function paso1(){
		if(isset($_POST['enviar'])){
			$_SESSION['inst_db'] = array(
											"host" => $_POST['host'],
											"driver" => $_POST['driver'],
											"name_db" => $_POST['db'],
											"user" => $_POST['user'],
											"pass" => $_POST['pass']
											);
		
			$_SESSION['instalacion']['paso']++;
			ir(".");
		}
		else
		{
			?>
			<form method="POST">
				<fieldset>
					<legend>Host Mysql:</legend>
					<input type="text" name="host" value="localhost">
				</fieldset>
				<fieldset>
					<legend>Driver del Servidor:</legend>
					<select name="driver">
						<?
							foreach(PDO::getAvailableDrivers() as $driver)
							{
								?><option value="<? echo $driver;?>"><? echo $driver;?></option>
								<?
							}
						?>
					</select>
				</fieldset>
				<fieldset>
					<legend>Nombre de la Base de Datos:</legend>
					<input type="text" name="db" value="db">
				</fieldset>
				<fieldset>
					<legend>Nombre del Usuario:</legend>
					<input type="text" name="user" value="root">
				</fieldset>
				<fieldset>
					<legend>Password del Usuario:</legend>
					<input type="password" name="pass" value="">
				</fieldset>
				
				<fieldset class="boton">
					<input type="submit" name="enviar">
				</fieldset>
			</form>
			<?
		}
	}
	
	function paso2(){
		?>
		<ul>
			<?
			//error_reporting(0);
			
			try
			{
				$enlace = new PDO($_SESSION['inst_db']['driver'] . ":host=" . $_SESSION['inst_db']['host'], $_SESSION['inst_db']['user'], $_SESSION['inst_db']['pass']);
				$enlace->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
			}
			catch(PDOException $e)
			{
				echo $e->getMessage();
				error(1);
			}			
			?>
			<li class="ok"><p>Usuario conectado con Exito al servidor</p></li>
			<?					
			try
			{
				$resultado = $enlace->query("DROP DATABASE IF EXISTS " . $_SESSION['inst_db']['name_db']);
			}
			catch(PDOException $e)
			{
				echo $e->getMessage();
				error(1);
			}
			?>
			<li class="ok"><p>Base de Datos limpiada con Exito</p></li>
			<?
			try
			{
				$resultado = $enlace->query("CREATE DATABASE " . $_SESSION['inst_db']['name_db']);
			}
			catch(PDOException $e)
			{
				echo $e->getMessage();
				error(1);
			}
			?>
			<li class="ok"><p>Base de Datos creada con Exito</p></li>
			<?
			$enlace = null;
			
			try
			{
				$enlace = new PDO($_SESSION['inst_db']['driver'] . ":host=" . $_SESSION['inst_db']['host'] . ";dbname=" . $_SESSION['inst_db']['name_db'], $_SESSION['inst_db']['user'], $_SESSION['inst_db']['pass']);
				$enlace->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
			}
			catch(PDOException $e)
			{
				echo $e->getMessage();
				error(1);
			}			
			?>
			<li class="ok"><p>Usuario conectado con Exito a la Base de Datos</p></li>
			<?
			$dir = opendir($_SESSION['instalacion']['dir'] . $_SESSION['instalacion']['dir_sql']);
			$ficheros = array();
			while($elemento = readdir($dir))
			{
				$ar = explode(".", $elemento);
				if(in_array("sql", $ar))
				{
					$ficheros[] = array($ar[0], $elemento);
				}
			}
			ordenar($ficheros, 0, count($ficheros) - 1);
			foreach($ficheros as $x)
			{
				cargarfichero($_SESSION['instalacion']['dir'] . $_SESSION['instalacion']['dir_sql'] . $x[1], $enlace);
			}
			$_SESSION['instalacion']['paso']++;
			
			$enlace = null;
			?>
			<li class="ok"><p>Insercion de Sentencias SQL realizada con Exito</p></li>
		</ul>
		<form action="." method="POST" id="s">
		<fieldset>
			<input type="submit" value="Siguiente">
		</fieldset>
		</form>
		<?
	}
	
	function paso3(){
		if(isset($_POST['enviar']))
		{
			?>
			<ul>
				<?
				//error_reporting(0);
				
				try
				{
					$enlace = new PDO($_SESSION['inst_db']['driver'] . ":host=" . $_SESSION['inst_db']['host'] . ";dbname=" . $_SESSION['inst_db']['name_db'], $_SESSION['inst_db']['user'], $_SESSION['inst_db']['pass']);
					$enlace->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
				}
				catch(PDOException $e)
				{
					echo $e->getMessage();
					error(1);
				}	
				
				$pass = md5($_POST['p1']);
				
				try
				{
					$resultado = $enlace->prepare("INSERT INTO usuarios (user, pass, email, nivel) VALUES (:uss, :pass, :em, 100)");
					
					$resultado-> bindParam(":uss", $_POST['uss']);
					$resultado-> bindParam(":pass", $pass);
					$resultado-> bindParam(":em", $_POST['em']);
					
					$resultado->execute();
				}
				catch(PDOException $e)
				{
					echo $e->getMessage();
					error(7);
				}
				?>
				<li class="ok"><p>Administrador creado con exito</p></li>
				<?
					crearDatosConexion();
					
					$enlace = null;
				?>
			</ul>
			<form action="." method="POST" id="s">
			<fieldset>
				<input type="submit" value="Siguiente">
			</fieldset>
			</form>
			<?
		}
		else
		{
			?>
			<script language="javascript">
				function Validar()
				{												
					var p1 = document.getElementById("p1");
					var p2 = document.getElementById("p2");
					var u = document.getElementById("uss");
					var e = document.getElementById("em");
					
					if(p1.value != p2.value)
					{
						alert("Las password no coinciden!");
						return false;
					}
					
					if(p1.value == "")
					{
						alert("Tenga en cuenta que dejar en blanco la password de\nun Administrador conlleva un riesgo elevado de seguridad.");
					}
					else
					{													
						var patron_password = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{5,10}$/;

						if(patron_password.test(p1.value) == false)
						{
							alert("La Password introducida no tiene un formato valido.\nRecuerde:\n-De 5 a 10 Caracteres\n-Minimo un Caracter en Mayuscula\n-Minimo un Numero");
							return false;
						}
					}
					
					if(u.value == "")
					{
						alert("Rellene el Campo USUARIO.");
						return false;
					}
					
					if(e.value == "")
					{
						alert("Rellene el Campo EMAIL.");
						return false;
					}
					
					//var patron_email = /^[\w]{3,}@[\w]{3,}\.[\w]{1,}$/;
					var patron_email = /^(.+\@.+\..+)$/;
					
					if(patron_email.test(e.value) == false)
					{
						alert("El email introducido no tiene un formato valido.\nRecuerde:\n-XXX@XXX.XXX");
						return false;
					}
					
					return true;
				}
			</script>
			<form method="POST" name="crearadmin" onsubmit="return Validar();">
				<fieldset>
					<legend>Usuario (Administrador):</legend>
					<input type="text" id="uss" name="uss" value="">
				</fieldset>
				<fieldset>
					<legend>Password:</legend>
					<input type="password" id="p1" name="p1" value="">
				</fieldset>
				<fieldset>
					<legend>Validar Password:</legend>
					<input type="password" id="p2" value="">
				</fieldset>
				<fieldset>
					<legend>Email:</legend>
					<input type="text" id="em" name="em" size="30" value="">
				</fieldset>
				
				<fieldset class="boton">
					<input type="submit" name="enviar">
				</fieldset>
			</form>
			<?
		}
	}
?>

<html>
	<head>
		<link rel="StyleSheet" href="sys/instalacion/estilo.php">
		<title>Instalacion del Sistema</title>
	</head>
	<body>
		<div id="base">
			<div id="cab">
				<p>Paso <? echo $_SESSION['instalacion']['paso']; ?></p>
			</div>
			<div class="clear"></div>
			<div id="cuerpo">
				<?
					switch($_SESSION['instalacion']['paso'])
					{
						case 1:
							paso1();
							break;
							
						case 2:
							paso2();
							break;
							
						case 3:
							paso3();
							break;
							
						default:
							
					}
				?>
			</div>
		</div>
	</body>
</html>